import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Day30 {
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) {
            // 思路：
            // 1.将字符串转换为字符数组（好操作）
            // 2.每次-5 得到密文，如果小于0加上26（替换时过滤掉空格）
            // 3.拼接
            char[] input = in.nextLine().toCharArray();
            // 定义结果串：res
            StringBuilder res = new StringBuilder();
            for (char ch : input) {
                // 遍历
                if (ch != ' ') {
                    // 这里写成三元表达式会更好一些
                    res.append((char)(ch > 'E' ? ch - 5 : ch - 5 + 26));
                } else {
                    res.append(" ");
                }
            }
            System.out.println(res.toString());
        }
    }

    // 求一个数的因子
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int n = in.nextInt();
            // 思路：
            // 1.遍历 2~sqrt(n)，让 n 循环整除，直到得到一个取余不为 0 的数，表示当前因子结束
            // 2.除完之后让不包含上一个因子的 n 进行寻找下一个因数
            // 3.如果最后得到的 n 不为 1 ，说明当前 n 也是一个因数，否则说明因数在上面的遍历中已经全部找到了
            int count = 0;
            for(int i = 2;i <= Math.sqrt(n);i++){
                if(n % i == 0){
                    while(n % i == 0){
                        n /= i;
                    }
                    count++;
                }
            }
            if(n != 1){
                count++;
            }
            System.out.println(count);
        }
    }
}